package br.usjt.servico;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * 
 * @author edson
 *
 */

public class MySQLFilmeDAO implements IFilmeDAO {
	private static final String cadastraFilme = "INSERT INTO filmes "
			+ "(codigoCopia, titulo, preco_codigopreco) VALUES (?, ?, ? ) ";
	private static final String excluiFilme = "DELETE FROM filmes WHERE "
			+ "titulo = ? ";
	private static final String consultaFilme = "SELECT *  FROM filmes WHERE "
		+ "titulo LIKE ? ";
	private static final String alterarDados = "UPDATE filmes SET preco_codigoPreco = ? "
			+ "WHERE titulo = ? ";
	String msg = "";
    @Override
	public ResultSet consulta(String titulo) {
    	ResultSet rs=null;
		PreparedStatement stmt;
		try {
	
			stmt = MySQLDAOFactory.criaConexao().prepareStatement(consultaFilme);
			stmt.setString(1, "%"+titulo+"%");

			rs = stmt.executeQuery();
			
			//stmt.close();
		} catch (SQLException e) {
			
			e.printStackTrace();
		}
		return rs;
	}

	@Override
	public int cadastra(int codigoTitulo, String titulo, int codigoPreco) {
		PreparedStatement stmt;
		int rc = 0;
		try {
			stmt = MySQLDAOFactory.criaConexao().prepareStatement(cadastraFilme);
			stmt.setInt(1, codigoTitulo);
			stmt.setString(2, titulo);
			stmt.setInt(3, codigoPreco);
			rc = stmt.executeUpdate();
			stmt.close();
		} catch (SQLException e) {
			msg = e.getMessage();
		}
		return rc;
	}

	@Override
	public int exclui(String titulo) {
		PreparedStatement stmt;
		int rc = 0;
		try {
			stmt = MySQLDAOFactory.criaConexao().prepareStatement(excluiFilme);
			stmt.setString(1, titulo);
			rc = stmt.executeUpdate();
			stmt.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return rc;
	}

	@Override
	public int altera(String titulo, int codigoPreco) {
		PreparedStatement stmt;
		int rc = 0;
		try {
			stmt = MySQLDAOFactory.criaConexao().prepareStatement(alterarDados);
			stmt.setInt(1, codigoPreco);
			stmt.setString(2, titulo);
			rc = stmt.executeUpdate();
			stmt.close();
		} catch (SQLException e) {
			msg = e.getMessage();
		}
		return rc;
	}

	public String getMessage() {
		return msg;
	}
}